home *** CD-ROM | disk | FTP | other *** search
- /* ModelessText.c -- modeless dialog */
-
- #include <Types.h>
- #include <Quickdraw.h>
- #include <Controls.h>
- #include <Dialogs.h>
- #include <Events.h>
- #include <Lists.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Appearance.h>
- #include <stdlib.h>
-
- #include "ResourceDefs.h"
- #include "Miscellany.h"
- #include "ControlUtils.h"
-
- #include "Dispatcher.h"
- #include "ModelessText.h"
-
- #define kSmallField 1
- #define kLargeField 2
- #define kX12345Field 3
- #define kX12345e6Field 4
- #define kPasswordField 5
- #define kDateField 6
- #define kTimeField 7
- #define kStyledField 8
-
-
- //----------
- DialogPtr ModelessTextDialog = nil;
-
- //----------
- void ModelessText_Create ()
- {
- ModelessText* dialog = NewModelessText ();
- DModelessTextData* data = NewDModelessTextData ();
-
- AMDialog_MakeDialog ((AMDialog*)dialog, DLOG_ModelessText);
- ModelessText_ConnectToData (dialog, (AMSignaler*)data);
- }
-
- //----------
- void ModelessText_Show ()
- {
- if (ModelessTextDialog == nil) {
- ModelessText_Create ();
- }
- if (ModelessTextDialog != nil) {
- SelectWindow (ModelessTextDialog);
- ShowWindow (ModelessTextDialog);
- }
- }
-
- //----------
- void ModelessText_Close ()
- {
- HideWindow (ModelessTextDialog);
- }
-
- //----------
- ModelessText* NewModelessText ()
- {
- ModelessText* dialog;
-
- dialog = (ModelessText*)malloc (sizeof (ModelessText));
- ModelessText_Init (dialog);
- SetClassID (dialog, classModelessText);
-
- return dialog;
- }
-
- //----------
- void DeleteModelessText (
- ModelessText* dialog)
- {
- ModelessText_Free (dialog);
- free (dialog);
- }
-
- //----------
- void ModelessText_Init (
- ModelessText* self)
- {
- AMDialog_Init ((AMDialog*)self);
- }
-
- //----------
- void ModelessText_Free (
- ModelessText* self)
- {
- AMDialog_Free ((AMDialog*)self);
- }
-
- //----------
- void ModelessText_FinishMake (
- ModelessText* self)
- {
- ModelessTextDialog = ((AMDialog*)self)->mDialog;
-
- self->mSmallHandle = AMDialog_GetControlItem ((AMDialog*)self, kSmallField);
- self->mLargeHandle = AMDialog_GetControlItem ((AMDialog*)self, kLargeField);
- self->mX12345Handle = AMDialog_GetControlItem ((AMDialog*)self, kX12345Field);
- self->mX12345e6Handle = AMDialog_GetControlItem ((AMDialog*)self, kX12345e6Field);
- self->mPasswordHandle = AMDialog_GetControlItem ((AMDialog*)self, kPasswordField);
- self->mDateHandle = AMDialog_GetControlItem ((AMDialog*)self, kDateField);
- self->mTimeHandle = AMDialog_GetControlItem ((AMDialog*)self, kTimeField);
- self->mStyledHandle = AMDialog_GetControlItem ((AMDialog*)self, kStyledField);
- }
-
- //----------
- void ModelessText_ConnectToData (
- ModelessText* self,
- AMSignaler* inData)
- {
- AMDialog_ConnectToData ((AMDialog*)self, inData);
- self->mData = (DModelessTextData*) inData;
-
- SetControlTextStr (self->mSmallHandle, GetSmall3 (self->mData));
- SetControlTextStr (self->mLargeHandle, GetLarge3 (self->mData));
- SetControlTextValue (self->mX12345Handle, GetX12347 (self->mData));
- SetControlTextFloat (self->mX12345e6Handle, GetX12345e8 (self->mData));
- SetControlTextStr (self->mPasswordHandle, GetPassword3 (self->mData));
- SetClockDateTime (self->mDateHandle, GetDate3 (self->mData));
- SetClockDateTime (self->mTimeHandle, GetTime3 (self->mData));
- SetControlTextStr (self->mStyledHandle, GetStyled3 (self->mData));
- }
-
- //----------
- void ModelessText_DoItem (
- ModelessText* self,
- SInt16 inItemHit)
- {
- switch (inItemHit) {
- case kSmallField:
- SetSmall3Handle (self->mData, GetEditTextChars (self->mSmallHandle));
- break;
- case kLargeField:
- SetLarge3Handle (self->mData, GetEditTextChars (self->mLargeHandle));
- break;
- case kX12345Field:
- SetX12347 (self->mData, GetControlTextValue (self->mX12345Handle));
- break;
- case kX12345e6Field:
- SetX12345e8 (self->mData, GetControlTextFloat (self->mX12345e6Handle));
- break;
- case kPasswordField:
- SetPassword3Handle (self->mData, GetEditTextChars (self->mPasswordHandle));
- break;
- case kDateField:
- SetDate3 (self->mData, GetClockDateTime (self->mDateHandle));
- break;
- case kTimeField:
- SetTime3 (self->mData, GetClockDateTime (self->mTimeHandle));
- break;
- case kStyledField:
- SetStyled3Handle (self->mData, GetEditTextChars (self->mStyledHandle));
- break;
-
- } // switch
- }
-
- //----------
- void ModelessText_DataChanged (
- ModelessText* self,
- long inDataID)
- {
- if (inDataID == idSmall3) {
- SetControlTextStr (self->mSmallHandle, GetSmall3 (self->mData));
- }
- if (inDataID == idLarge3) {
- SetControlTextStr (self->mLargeHandle, GetLarge3 (self->mData));
- }
- if (inDataID == idX12347) {
- SetControlTextValue (self->mX12345Handle, GetX12347 (self->mData));
- }
- if (inDataID == idX12345e8) {
- SetControlTextFloat (self->mX12345e6Handle, GetX12345e8 (self->mData));
- }
- if (inDataID == idPassword3) {
- SetControlTextStr (self->mPasswordHandle, GetPassword3 (self->mData));
- }
- if (inDataID == idDate3) {
- SetClockDateTime (self->mDateHandle, GetDate3 (self->mData));
- }
- if (inDataID == idTime3) {
- SetClockDateTime (self->mTimeHandle, GetTime3 (self->mData));
- }
- if (inDataID == idStyled3) {
- SetControlTextStr (self->mStyledHandle, GetStyled3 (self->mData));
- }
- }
-
- //----------
- Boolean ModelessText_Filter (
- ModelessText* self,
- EventRecord *ioEvent,
- DialogItemIndex *outItemHit)
- {
- return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
- }
-